prompt 信用就医是否开启:SF_SF_CREDPAY_JKOPEN create or replace function SF_SF_CREDPAY_JKOPEN ( PMZZYBZ varchar2 ,--入参:门诊住院标志 0:门诊 1:住院 PJKCJBM varchar2 ,--入参:接口场景编码 BC00.03.00.34:平台内部接口获取银行账户信息 BC00.03.00.05:信用预授权接口门诊或住院预授权结算 BC00.03.00.06:信用预授权接口门诊或住院预授权结算退款 PCZY000 number ,--入参:操作员编码 PBRID00 number ,--入参:BRID00 PZYGHID number ,--入参:挂号ID 或住院ID PJZDH00 number ,--入参:结账单号 PINTXML varchar2 --入参:备用参数 xml编码格式传入 ) -- Person Date Comments -- zhangyc 2023.10.09 create by 信用就医是否开启:SF_SF_CREDPAY_JKOPEN by MZSF-20231020-003 -- zhangyc 2023.11.02 信用就医退款接口优化 by MZSF-20231102-001 -- zhangyc 2023.11.15 增加前端传是否开启参数节点JKOPEN by ZYSF-20231115-002 -- zhangyc 2023.04.24 增加【PA02.01.02.01】医保信用就医个帐授权信息查询、【PA02.01.02.02】医保信用就医个帐预授权冻结、【PA02.01.02.03】医保信用就医个帐预授权解除业务判断 by MZSF-20240510-003 -- zhangyc 2024.07.31 信用就医厂家XMCredPay:厦门信用就医,不判断担保表是否有效,在信用就医状况查询业务中处理 by MZSF-20240802-001 -- zhangyc 2024.08.05 优化判断条件 by MZSF-20240807-001 -- zhangyc 2024.08.30 厂家为XMCredPay:厦门信用就医,场景编码:BC00.03.00.34 只查当天的担保记录 by MZSF-20240903-003 -- zhangyc 2024.12.10 修正厂家YB场景编码'BC00.03.00.05' return varchar2 is LS_SFXYDB number(12,2); --是否信用担保 LS_FHXX00 varchar2(10); --是否开启 1:开启 0:不开启 11:已经授权担保 LS_CreditPay_Open varchar2(100);--是否开启信用付接口 0:不开启 1:门诊开启 2:住院开启 3:门诊和住院都开启 LS_CreditPay_FBBH00 varchar2(100);--信用就医开启对应的院内的费别编码多值用|分开。参考格式(1|3) LS_CreditPay_FactoryCode varchar2(100);--信用就医厂家编码 YB:医保(泉州) YL:医联 YH:易惠 fjNation:福建医保基线版 XMCredPay:厦门信用就医 LS_FBBH00 number(5); --费别编码 LS_COUNT0 number(12,2); LS_cred_pay number(12,2);--其中信用支付金额 LS_JZDH00 number(10);--结账单号 LS_JSJZDH number(10);--结算结账单号 LS_CXJZDH number(10);--冲销结账单号 LS_JFDJH0 number(10);--原缴费单据号 LS_TKDJH0 number(10);--退款单据号 LS_JKOPEN varchar2(10);--是否开启 1:开启 0:不开启 begin LS_COUNT0 :=0; LS_cred_pay :=0;--其中信用支付金额 LS_JZDH00 :=0;--结账单号 LS_JSJZDH :=0;--结算结账单号 LS_CXJZDH :=0;--冲销结账单号 LS_JZDH00 :=nvl(PJZDH00,0);--结账单号 LS_JFDJH0 :=0;--原缴费单据号 LS_TKDJH0 :=0;--退款单据号 LS_JKOPEN :=null;--是否开启 1:开启 0:不开启 --解析前端传参 LS_JKOPEN:=trim(substrb(SF_XT_GETXMLSTR('JKOPEN',PINTXML),1,10));--是否开启 1:开启 0:不开启 LS_JFDJH0:=SF_SF_STRTONUM(trim(substrb(SF_XT_GETXMLSTR('jfdjh0',PINTXML),1,10))); --原缴费单据号 LS_TKDJH0:=SF_SF_STRTONUM(trim(substrb(SF_XT_GETXMLSTR('tkdjh0',PINTXML),1,10))); --退款单据号 if nvl(PBRID00,0)>0 then --是否开启信用付接口 0:不开启 1:门诊开启 2:住院开启 3:门诊和住院都开启 LS_CreditPay_Open:=substrb(SF_SF_TYZD00('信用付接口参数字典','CreditPay_Open'),1,100); LS_CreditPay_FBBH00:=substrb(SF_SF_TYZD00('信用付接口参数字典','CreditPay_FBBH00'),1,100); LS_CreditPay_FactoryCode:=substrb(SF_SF_TYZD00('信用付接口参数字典','CreditPay_FactoryCode'),1,100); LS_JSJZDH:=SF_SF_STRTONUM(trim(substrb(SF_XT_GETXMLSTR('jsjzdh',PINTXML),1,10)));--结算结账单号 LS_CXJZDH:=SF_SF_STRTONUM(trim(substrb(SF_XT_GETXMLSTR('cxjzdh',PINTXML),1,10)));--冲销结账单号 if nvl(LS_CXJZDH,0)=0 and nvl(LS_JZDH00,0)>0 then LS_CXJZDH:=LS_JZDH00;end if; if (PMZZYBZ='0' and LS_CreditPay_Open in ('1','3')) or (PMZZYBZ='1' and LS_CreditPay_Open in ('2','3')) then LS_FHXX00:='1'; if PBRID00>0 then begin if PMZZYBZ='0' then select aa.FBBH00 into LS_FBBH00 from BM_BRXXB0 aa where aa.BRID00 =PBRID00; else select bb.FBBH00 into LS_FBBH00 from ZY_BRXXB0 bb where bb.ZYID00 =PZYGHID; end if; exception when others then LS_FBBH00:=null; end; end if; --判断费别不存在在参数里,设置为未开启 if LS_CreditPay_FBBH00 is not null and LS_FBBH00 is not null and instrb('|'||LS_CreditPay_FBBH00||'|','|'||to_char(LS_FBBH00)||'|')<=0 then LS_FHXX00:='0'; end if; end if; if LS_FHXX00='1' then --1:开启 0:不开启 if PMZZYBZ='0' then if LS_CreditPay_FactoryCode in ('XMCredPay') then select count(1) into LS_SFXYDB from SF_BRDB00 where brid00=PBRID00 and DBLXBH='01' and SFYX00='Y' and DBRQ00=to_char(sysdate,'YYYYMMDD'); else select count(1) into LS_SFXYDB from SF_BRDB00 where brid00=PBRID00 and DBLXBH='01' and SFYX00='Y'; end if; else if LS_CreditPay_FactoryCode in ('XMCredPay') then LS_SFXYDB:=0; else select count(1) into LS_SFXYDB from ZY_BRDB00 where brid00=PBRID00 and DBLXBH='01' and SFYX00='Y'; end if; end if; if PJKCJBM in ('BC00.03.00.34','PA02.01.02.01','CredPayPub_InfoQuery') then --BC00.03.00.34:平台内部接口获取银行账户信息 【PA02.01.02.01】医保信用就医个帐授权信息查询 if LS_FHXX00='1' and nvl(LS_SFXYDB,0)>0 then LS_FHXX00:='11'; end if; elsif PJKCJBM in ('CredPayPub_FYXX00_ExecuteFrozen','Credit_FYXX00_frozen') then --费用登记信用付 if LS_FHXX00='1' and LS_CreditPay_FactoryCode in ('XMCredPay') then LS_FHXX00:='1'; else LS_FHXX00:='0'; end if; elsif PJKCJBM in ('BC00.03.00.05','PA02.01.02.02','CredPayPub_ExecuteFrozen') then --BC00.03.00.05:信用预授权接口门诊或住院预授权结算 【PA02.01.02.02】医保信用就医个帐预授权冻结 if LS_FHXX00='1' and nvl(LS_SFXYDB,0)<=0 then --如果未存在担保不执行 LS_FHXX00:='0'; end if; if LS_FHXX00='1' then if LS_CreditPay_FactoryCode in ('XMCredPay') then LS_FHXX00:='1'; elsif LS_CreditPay_FactoryCode in ('YB') then LS_FHXX00:=LS_FHXX00; else LS_FHXX00:='0'; end if; end if; elsif PJKCJBM in ('BC00.03.00.06','PA02.01.02.03','CredPayPub_ExecuteRefund') then --BC00.03.00.06:信用预授权接口门诊或住院预授权结算退款 【PA02.01.02.03】医保信用就医个帐预授权解除 if nvl(LS_CXJZDH,0)>0 then if PMZZYBZ='0' then select sum(JFJE00) into LS_cred_pay from SF_BRJFB0 where BRID00=PBRID00 and JZDH00=LS_CXJZDH and ZFMXBH='XY' and nvl(SHH000,' ') not in ('chs_fjs_standard'); else select sum(JFJE00) into LS_cred_pay from ZY_BRJFB0 where BRID00=PBRID00 and JZDH00=LS_CXJZDH and ZFMXBH='XY' and nvl(SHH000,' ') not in ('chs_fjs_standard'); end if; else LS_cred_pay:=SF_SF_STRTONUM(trim(substrb(SF_XT_GETXMLSTR('unfrozenAmt',PINTXML),1,12))); end if; if LS_FHXX00='1' and nvl(LS_cred_pay,0)=0 then --如果未存在担保不执行 LS_FHXX00:='0'; end if; end if; end if; end if; LS_FHXX00:=nvl(LS_JKOPEN,LS_FHXX00); return nvl(LS_FHXX00,'0'); end; / --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%